/**
 * 配置加载器
 * 提供统一的配置加载方法
 */

// 配置缓存
const configCache = {};

/**
 * 获取配置
 * @param {string} configName 配置名称
 * @returns {any} 配置对象
 */
function getConfig(configName) {
  // 如果已经缓存，直接返回
  if (configCache[configName]) {
    return configCache[configName];
  }
  
  try {
    // 使用静态映射替代动态require
    let config = null;
    
    switch (configName) {
      case 'app.json':
      case 'app':
        config = require('./app.json');
        break;
      case 'config':
        config = require('./config');
        break;
      case 'env_config':
        config = require('./env_config');
        break;
      case 'global_config':
        config = require('./global_config');
        break;
      case 'api_config':
        config = require('./api_config');
        break;
      case 'routes_config':
        config = require('./routes_config');
        break;
      case 'global_modules_config':
        config = require('./global_modules_config');
        break;
      case 'services_config':
        config = require('./services_config');
        break;
      case 'ui_config':
        config = require('./ui_config');
        break;
      default:
        console.warn(`[配置加载器] 未知配置: ${configName}`);
        return null;
    }
    
    configCache[configName] = config;
    return config;
  } catch (e) {
    console.error(`加载配置 ${configName} 失败`, e);
    return null;
  }
}

module.exports = {
  getConfig
};